Benjamin Otte [Thu, 29 Dec 2011 13:04:33 +0000 (14:04 +0100)]
css: Make CSS resolving work according to spec
See inline code comments taken from
http://dev.w3.org/csswg/css3-cascade/#cascade
This now respects the special values "inherit" and "initial" properly.
Note that those values cannot be parsed yet. This will be added in a
future commit.
Benjamin Otte [Thu, 29 Dec 2011 13:04:19 +0000 (14:04 +0100)]
styleproperty: Add _gtk_style_property_get_initial_value()
Benjamin Otte [Thu, 29 Dec 2011 12:38:45 +0000 (13:38 +0100)]
css: Pass the parent context to _gtk_css_lookup_resolve()
This way, we can resolve inherit properties.
Benjamin Otte [Thu, 29 Dec 2011 11:40:21 +0000 (12:40 +0100)]
widget: Set parent style context
Benjamin Otte [Thu, 29 Dec 2011 11:30:25 +0000 (12:30 +0100)]
API: Add GtkStyleContext::parent
We need this for proper support of CSS inherit.
Benjamin Otte [Thu, 29 Dec 2011 01:28:32 +0000 (02:28 +0100)]
styleproperty: Pass initial value explicitly
Benjamin Otte [Thu, 29 Dec 2011 01:27:54 +0000 (02:27 +0100)]
css: Add GtkCssSpecialValue
Benjamin Otte [Wed, 28 Dec 2011 23:28:56 +0000 (00:28 +0100)]
css: Add some docs to GtkCssLookup
In particular, document which parts of the CSS value querying we're
doing here.
Benjamin Otte [Wed, 28 Dec 2011 22:16:51 +0000 (23:16 +0100)]
reftests: Add test for pseudo-class matching
Previous GTK matched pseudoclasses not based on CSS rules, but based on
their value in the enumeration. This is now fixed.
Benjamin Otte [Wed, 28 Dec 2011 21:59:55 +0000 (22:59 +0100)]
css: Redo StyleProvider interface
We now use the GtkStleProviderPrivate interface, which hopefully is
faster and more conformant to CSS. Long term, it definitely should be
both.
I would have liked to split this up into multiple commits, but couldn't
find a way.
Benjamin Otte [Wed, 28 Dec 2011 21:05:35 +0000 (22:05 +0100)]
styleproperties: Add a hacky function to redirect color lookups
This will soon be necessary.
FIXME: Make sure this gets removed again.
Benjamin Otte [Wed, 28 Dec 2011 15:15:00 +0000 (16:15 +0100)]
symboliccolor: Add _gtk_symbolic_color_resolve_full()
Benjamin Otte [Tue, 27 Dec 2011 19:41:25 +0000 (20:41 +0100)]
stylecontext: Separate properties by states
We don't want to mix states the wrong way. And the current approach does
that.
Benjamin Otte [Tue, 27 Dec 2011 16:41:48 +0000 (17:41 +0100)]
stylecontext: Pass state to style data lookup function
Benjamin Otte [Fri, 23 Dec 2011 13:30:59 +0000 (14:30 +0100)]
css: Add _gtk_style_property_get_count()
Benjamin Otte [Fri, 23 Dec 2011 13:23:52 +0000 (14:23 +0100)]
cssprovider: Keep a bitmask for the properties
That way we can easily tell wich properties are in use.
Benjamin Otte [Fri, 23 Dec 2011 13:12:04 +0000 (14:12 +0100)]
css: Add _gtk_style_property_get_id()
Benjamin Otte [Fri, 23 Dec 2011 11:31:16 +0000 (12:31 +0100)]
styleproperty: Assign a unique id to every styleproperty
Benjamin Otte [Fri, 23 Dec 2011 21:29:34 +0000 (22:29 +0100)]
tests: Add tests for GtkBitmask
Benjamin Otte [Fri, 23 Dec 2011 11:16:18 +0000 (12:16 +0100)]
gtk: Add GtkBitmask
The CSS code likes to have that very much.
Stefan Sauer [Mon, 9 Jan 2012 17:16:53 +0000 (18:16 +0100)]
gtkscale: fix bogus compare func
The GtkScaleMark values are gdouble, a simple a-b compare func would fail for
values with the same integer value. This breaks the sorting and causes random
marker label placement.
Rob Bradford [Mon, 9 Jan 2012 17:15:00 +0000 (17:15 +0000)]
wayland: Constrain the window configure requests to the window's geometry
When we receive a configure event from Wayland telling us to resize our
surface we check against the geometry constraints for the window to ensure we
do not resize below the minimum and maximum limits.
Rob Bradford [Mon, 9 Jan 2012 17:11:22 +0000 (17:11 +0000)]
wayland: Implement set_geometry_hints vfunc
Our trivial implementation simply saves the passed in parameters into the
Wayland private data structure.
Rui Matos [Thu, 22 Dec 2011 14:49:50 +0000 (14:49 +0000)]
scrolledwindow: Render the background so that it can be styled
Rui Matos [Thu, 22 Dec 2011 14:44:50 +0000 (14:44 +0000)]
window: Stop setting state flags on the style context for drawing
This also removes setting the FOCUSED state flag when
gtk_window_has_toplevel_focus() since this effect can now be done with the new
WINDOW_UNFOCUSED flag instead which actually works better regarding X grabs
and modal windows.
Rui Matos [Thu, 22 Dec 2011 02:59:16 +0000 (02:59 +0000)]
treeview: Use the widget state flags as a base for drawing expanders
Rui Matos [Thu, 22 Dec 2011 02:58:27 +0000 (02:58 +0000)]
treeview: Stop setting state flags on the style context for drawing
Rui Matos [Thu, 22 Dec 2011 00:37:10 +0000 (00:37 +0000)]
trayicon-x11: Stop setting state flags on the style context for drawing
Rui Matos [Thu, 22 Dec 2011 00:31:07 +0000 (00:31 +0000)]
toolitemgroup: Use the widget state flags as a base for drawing
Rui Matos [Thu, 22 Dec 2011 00:12:37 +0000 (00:12 +0000)]
toolbar: Stop setting state flags on the style context for drawing
Rui Matos [Wed, 21 Dec 2011 23:41:50 +0000 (23:41 +0000)]
Revert "button: Stop setting state flags on the style context for drawing"
Setting state flags is actually needed here since this function is called by
GtkButton subclasses which add their specific state flags as a parameter.
This reverts commit
e868b8d6ea04af6e31d7075d09508689873c0df5.
Rui Matos [Wed, 21 Dec 2011 23:27:15 +0000 (23:27 +0000)]
textdisplay: Use the widget state flags as a base for drawing
Rui Matos [Wed, 21 Dec 2011 23:06:39 +0000 (23:06 +0000)]
spinner: Stop setting state flags on the style context for drawing
Rui Matos [Wed, 21 Dec 2011 16:17:18 +0000 (16:17 +0000)]
spinbutton: Use the widget state flags as a base for drawing
Rui Matos [Wed, 21 Dec 2011 15:30:28 +0000 (15:30 +0000)]
separator: Stop setting state flags on the style context for drawing
Rui Matos [Wed, 21 Dec 2011 15:15:10 +0000 (15:15 +0000)]
scale: Stop setting state flags on the style context for drawing
Rui Matos [Wed, 21 Dec 2011 15:01:02 +0000 (15:01 +0000)]
range: Use the widget state flags as a base for drawing
Rui Matos [Wed, 21 Dec 2011 14:20:02 +0000 (14:20 +0000)]
radiobutton: Use the widget state flags as a base for drawing
Rui Matos [Wed, 21 Dec 2011 16:12:17 +0000 (16:12 +0000)]
widget-factory: Make the second spin button insensitive
Rob Bradford [Mon, 9 Jan 2012 16:00:14 +0000 (16:00 +0000)]
wayland: Make the resize and move functions use gdk_device_ungrab
Now that grab and ungrab vfuncs are implemented on GdkDevice then we can use
gdk_device_ungrab to break the implicit grab created by the button press that
triggered the resize and move.
Kristian Høgsberg [Mon, 9 Jan 2012 15:49:57 +0000 (15:49 +0000)]
wayland: Add implementations for the device_grab / device_ungrab vfuncs
This allows the correct implementation of breaking the grab in pointer driven
resize and move.
Signed-off-by: Rob Bradford <rob@linux.intel.com>
Rob Bradford [Mon, 9 Jan 2012 15:07:08 +0000 (15:07 +0000)]
application: Correct the fallback definition for gtk_application_end_session
The function definition used a pointer to the enum value rather than the enum
itself.
This broke the build on platforms that don't have an implmentation of these
functions.
Ryan Lortie [Fri, 6 Jan 2012 18:16:36 +0000 (13:16 -0500)]
GtkButton: do not allow both types of actions
Only allow one of 'action-name' or 'related-action' to be set.
https://bugzilla.gnome.org/show_bug.cgi?id=667394
Ryan Lortie [Fri, 6 Jan 2012 17:51:10 +0000 (12:51 -0500)]
bloatpad: add left/centre/right toolbar buttons
https://bugzilla.gnome.org/show_bug.cgi?id=667394
Ryan Lortie [Fri, 6 Jan 2012 03:22:06 +0000 (22:22 -0500)]
Add new GtkActionable interface
This is the interface for GtkWidgets that can be associated with an
action on a GtkAppicationWindow or associated GtkApplication.
It essentially features 'action-name' and 'action-target' properties
with some associated convenience API.
This interface is implemented by GtkButton and GtkToolButton.
https://bugzilla.gnome.org/show_bug.cgi?id=667394
Ryan Lortie [Mon, 9 Jan 2012 13:29:11 +0000 (14:29 +0100)]
drop debian/ directory
Murray Cumming [Mon, 9 Jan 2012 13:19:21 +0000 (14:19 +0100)]
gtkmain.h: Used GDK_DEPRECATED
If we use just G_GNUC_DEPRECATED then it cannot be disabled by
an ifdef.
Matthias Clasen [Mon, 9 Jan 2012 05:53:53 +0000 (00:53 -0500)]
Revert "GtkWindow: new API to store state in GSettings"
This reverts commit
730765de9163934d9993b25a87f076f1b36ed271.
This needs more thought, committing it on the same day as filing
the bug was premature.
Matthias Clasen [Mon, 9 Jan 2012 05:25:39 +0000 (00:25 -0500)]
Fix up symbol lists
Matthias Clasen [Mon, 9 Jan 2012 03:18:46 +0000 (22:18 -0500)]
Add more tests for GdkRGBA parsing
These examples are taken from bug 667485.
Matthias Clasen [Mon, 9 Jan 2012 03:16:36 +0000 (22:16 -0500)]
Tighten up GdkRGBA parsing
gdk_rgba_parse was accepting too much nonsense, as pointed out
in bug 667485.
Daniel Mustieles [Sun, 8 Jan 2012 19:17:36 +0000 (20:17 +0100)]
Updated Spanish translation
Alexander Shopov [Sun, 8 Jan 2012 15:21:05 +0000 (17:21 +0200)]
Updated Bulgarian translation
Matthias Clasen [Sun, 8 Jan 2012 07:16:26 +0000 (02:16 -0500)]
Fix the gtk_application_end_session implementation
We were passing the wrong flags, causing the meaning of
the request_confirmation parameter to be inverted.
Matthias Clasen [Sun, 8 Jan 2012 07:15:49 +0000 (02:15 -0500)]
Add a test for the new session api
Matthias Clasen [Sun, 8 Jan 2012 02:47:42 +0000 (21:47 -0500)]
Fix doc build
Matthias Clasen [Sun, 8 Jan 2012 02:44:52 +0000 (21:44 -0500)]
Add session management migration chapter
Add some preliminary information about migration from EggSMClient
to GtkApplication.
Matthias Clasen [Sun, 8 Jan 2012 01:44:37 +0000 (20:44 -0500)]
Rearrange migration chapter a bit
The 'checklist' is really just the 'extra credits', so put it
at the end, rather than the beginning.
Matthias Clasen [Sun, 8 Jan 2012 01:01:23 +0000 (20:01 -0500)]
GtkApplication: only allow quit_response when it make sense
This check was present in the OS X implementation, but it
makes sense in the D-Bus implementation as well.
Matthias Clasen [Sun, 8 Jan 2012 00:55:20 +0000 (19:55 -0500)]
Remove some debug spew
Matthias Clasen [Sun, 8 Jan 2012 00:52:14 +0000 (19:52 -0500)]
GtkApplication: Add OS X implementation from EggSMClient
Matthias Clasen [Sun, 8 Jan 2012 00:02:48 +0000 (19:02 -0500)]
Rename rgba test file
Not testing GdkColor here, anymore.
Matthias Clasen [Sun, 8 Jan 2012 00:00:47 +0000 (19:00 -0500)]
Use g_slice_dup
This saves some manual copying.
Pointed out in bug 667473.
Matthias Clasen [Sun, 8 Jan 2012 00:00:32 +0000 (19:00 -0500)]
Add a test for gdk_rgba_copy
Daniel Mustieles [Sat, 7 Jan 2012 17:53:26 +0000 (18:53 +0100)]
Missing file in POTFILEs.in
Paolo Borelli [Sat, 7 Jan 2012 17:05:59 +0000 (18:05 +0100)]
Change param name to make gtk-doc happy.
Benjamin Otte [Sat, 7 Jan 2012 15:14:31 +0000 (16:14 +0100)]
tests: Fix deprecation warnings in prop-editor
Benjamin Otte [Sat, 7 Jan 2012 14:56:26 +0000 (15:56 +0100)]
application: return a value
Martin Pitt [Sat, 7 Jan 2012 09:04:18 +0000 (10:04 +0100)]
gtkapplication.c: Fix syntax error
Previous commit accidentally removed the closing } from
gtk_application_end_session(). Add it back to unbreak the build.
Matthias Clasen [Sat, 7 Jan 2012 05:38:57 +0000 (00:38 -0500)]
Add a trivial implementation of the new apis
For non-X11, this is just a placeholder until we get around
to moving the EggSMClient implementations over.
Matthias Clasen [Sat, 7 Jan 2012 08:15:26 +0000 (03:15 -0500)]
Document the new apis
Matthias Clasen [Sat, 7 Jan 2012 08:04:54 +0000 (03:04 -0500)]
Add gtk_application_end_session
This function allows applications to request that
the user session be ended by logout/shutdown/reboot.
Matthias Clasen [Tue, 3 Jan 2012 20:02:49 +0000 (15:02 -0500)]
GtkApplication: Add an inhibit api
This lets applications block logout and similar actions ahead
of time. Currently only implemented for D-Bus, but Windows has
very similar API since Vista.
Matthias Clasen [Tue, 3 Jan 2012 19:52:29 +0000 (14:52 -0500)]
GtkApplication: Add logout notification
This is fairly basic, allowing applications to learn when
the session manager is about to end the session, and possibly
block this. The only implementation at this point is using the
org.gnome.SessionManager D-Bus interface of gnome-session. It should
be straightforward to port the EggSMClient implementations for
Windows and OS X.
Chun-wei Fan [Sat, 7 Jan 2012 03:21:46 +0000 (11:21 +0800)]
Update Visual C++ property sheets
"Install" (and hence compile with glib-compile-schemas.exe) the new
org.gtk.WindowState.gschema.xml gschema file.
Ryan Lortie [Fri, 6 Jan 2012 20:37:05 +0000 (15:37 -0500)]
GtkWindow: new API to store state in GSettings
https://bugzilla.gnome.org/show_bug.cgi?id=667438
Ryan Lortie [Fri, 6 Jan 2012 15:53:57 +0000 (10:53 -0500)]
GtkBuilder: support parsing GVariant properties
https://bugzilla.gnome.org/show_bug.cgi?id=667394
Piotr Drąg [Fri, 6 Jan 2012 20:18:28 +0000 (21:18 +0100)]
Updated POTFILES.skip
Rob Bradford [Fri, 6 Jan 2012 16:49:22 +0000 (16:49 +0000)]
wayland: Break an implicit grab when asking to be resized
An implicit grab is created inside GTK+ when the button is pressed down on a
window. The semantics of wl_shell_surface_resize means that you don't get a
corresponding release event that would ordinarily break the implicit grab. So
we must do it as part of the resize request.
Rob Bradford [Fri, 6 Jan 2012 16:48:13 +0000 (16:48 +0000)]
wayland: Make the event source use _gdk_display_get_next_serial
Rob Bradford [Fri, 6 Jan 2012 16:47:53 +0000 (16:47 +0000)]
wayland: Implement the get_next_serial vfunc on GdkDisplay
Zeeshan Ali (Khattak) [Thu, 5 Jan 2012 01:09:27 +0000 (03:09 +0200)]
gtkspinbutton: Don't hilight buttons when !editable
Don't hilight the buttons on mouse over when 'editable' property is set to
'FALSE.
https://bugzilla.gnome.org/show_bug.cgi?id=667229
Kristian Høgsberg [Fri, 6 Jan 2012 15:10:42 +0000 (15:10 +0000)]
wayland: The shared cursors are now installed in the weston directory
Signed-off-by: Rob Bradford <rob@linux.intel.com>
Matthias Clasen [Tue, 3 Jan 2012 19:39:26 +0000 (14:39 -0500)]
GtkApplication: Rename a member for clarity
'session' is a bit ambiguous (and GtkApplication may grow session
management support at some point), so rename the bus connection
to 'session_bus'.
Matthias Clasen [Fri, 6 Jan 2012 04:21:30 +0000 (23:21 -0500)]
Another attempt at fixing menu positioning corner cases
The code for moving the menu into monitor / workarea was duplicated,
once for the push-in scenario and once for without. The problem with
the second case is that we've stored the menu position before adjusting
it. That made us remember an out-of-monitor position that then later
triggered _another_ copy of this code in the size-request implementation.
Unify this to only have one copy of code, and only store the menu
position after adjusting it to be inside the monitor. This fixes both
statusicon menus that get popped up from the panel, outside the workarea,
to not have scroll arrows, and the gedit language menu which was not
placed in the monitor at all after the initial workarea commit.
As a side-effect of this change, we now make large scrolling menus
occupy the full height of the workarea. Before this change, we were
keeping either the top or bottom edge put while shrinking the menu
to fit in the monitor.
https://bugzilla.gnome.org/show_bug.cgi?id=667249
Benjamin Otte [Fri, 6 Jan 2012 04:23:15 +0000 (05:23 +0100)]
label: Avoid deprecation warning
Benjamin Otte [Fri, 6 Jan 2012 04:17:46 +0000 (05:17 +0100)]
label: Actually mark visited labels as visited
A recalculate will clear the labels and compute them again, which will
clear the information if something was visited...
Benjamin Otte [Fri, 6 Jan 2012 04:15:18 +0000 (05:15 +0100)]
reftests: Add a test for latest commit
We want to make sure we notice when we mess up label attribute ordering
again...
Benjamin Otte [Fri, 6 Jan 2012 04:10:50 +0000 (05:10 +0100)]
label: Make attr_list_merge() use sane merging rules
Instead of "attribute with later start index wins, make sure the
attribute list that is merged from takes precedence. This now gives the
multiple attribute lists we use in the label an order:
1) gtk_label_set_attributes()
These attributes override everything. It's what the function's there
for after all.
2) markup of label
Other user-specified attributes come next.
3) attributes for links
When we apply custom attributes on parts of the text, we put them
last. We don't want to mess with what the user does. Also, we change
color and underline, so we usually have something to show.
Benjamin Otte [Fri, 6 Jan 2012 04:07:36 +0000 (05:07 +0100)]
label: Rename variable
The effective attributes aren't that anymore. They're now just the
attributes from the parsed markup.
Benjamin Otte [Fri, 6 Jan 2012 04:06:29 +0000 (05:06 +0100)]
label: Don't excessively recalculate
We don't merge attributes anymore, so no need to call the function that
used to do this job.
Benjamin Otte [Fri, 6 Jan 2012 04:04:13 +0000 (05:04 +0100)]
label: Redo attribute application
- Don't compute link color attributes until layout creation
This is useful as a performance enhancement, because we don't have to
lookup the property after setting the text, so multiple markup sets
don't cost style lookups.
- Don't merge attrs into effective_attrs
We do this when applying link colors now. Keeping them separate allows
invalidating them separately.
Benjamin Otte [Fri, 6 Jan 2012 03:25:02 +0000 (04:25 +0100)]
ilabel: Redo gtk_label_get_link_colors()
Don't pass out an allocated color, assign it instead. Gets rid of having
to call gdk_color_free() all the time.
Benjamin Otte [Fri, 6 Jan 2012 01:53:12 +0000 (02:53 +0100)]
label: Split out function that merges attr lists
Benjamin Otte [Fri, 6 Jan 2012 01:04:01 +0000 (02:04 +0100)]
gtk-demo: Prove that links work fine now
Also, doodling is fun.
Benjamin Otte [Fri, 6 Jan 2012 00:52:32 +0000 (01:52 +0100)]
label: Redo links parsing
Instead of getting confused by applied underline or color tags in the
regular markup, we store the link start/end when we actually parse the
text. As a bonus, we can avoid rescanning links when creating the
markup.
Benjamin Otte [Thu, 5 Jan 2012 16:06:00 +0000 (17:06 +0100)]
label: Move function into only caller
Benjamin Otte [Thu, 5 Jan 2012 15:50:49 +0000 (16:50 +0100)]
API: Deprecate key snooping
You really shouldn't be doing this. If you have to, you can use
gdk_window_add_filter() or listen to raw events on XI2.
Benjamin Otte [Thu, 5 Jan 2012 15:48:14 +0000 (16:48 +0100)]
a11y: Remove keysnooping support
As previously announced, key snooping is something that we should not
support in GTK. In particular because AT-SPI made every key press a
synchronous DBUS call / spawned a nested main loop with the key
snoopers. This breaks responsiveness, order of key presses and internal
consistency when the AT decides to remove key events.
Zeeshan Ali (Khattak) [Thu, 5 Jan 2012 01:09:06 +0000 (03:09 +0200)]
gtkspinbutton: Ignore keynav when !editable
Don't allow changing of value through keyboard when 'editable' property is
set to 'FALSE.
https://bugzilla.gnome.org/show_bug.cgi?id=667229